package com.xtm.exercise.enums;

/***
 *@Author: 王磊
 *@CreateTime: 2024-03-30  11:47
 *@Description: 字典数字枚举类
 *@title: CommonNumEnums
 */
public enum DicNumEnums {

    NUM_ONE(1,1,1L,"1","数字1"),

    NUM_TWO(2,2,2L,"2","数字2");

    /**
     * integer 枚举值
     */
    private Integer integerValue;
    /**
     * int 枚举值
     */
    private int intValue;
    /**
     * long 枚举值
     */
    private Long longValue;
    /**
     * string  枚举值
     */
    private String stringValue;
    /**
     * 描述
     */
    private String msg;

    public Integer getIntegerValue() {
        return integerValue;
    }

    public void setIntegerValue(Integer integerValue) {
        this.integerValue = integerValue;
    }

    public int getIntValue() {
        return intValue;
    }

    public void setIntValue(int intValue) {
        this.intValue = intValue;
    }

    public Long getLongValue() {
        return longValue;
    }

    public void setLongValue(Long longValue) {
        this.longValue = longValue;
    }

    public String getStringValue() {
        return stringValue;
    }

    public void setStringValue(String stringValue) {
        this.stringValue = stringValue;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    DicNumEnums(Integer integerValue, int intValue, Long longValue, String stringValue, String msg) {
        this.integerValue = integerValue;
        this.intValue = intValue;
        this.longValue = longValue;
        this.stringValue = stringValue;
        this.msg = msg;
    }

    /**
     * 根据code返回枚举类型,主要在switch中使用
     */
    public static DicNumEnums getByCode(Integer value) {
        for (DicNumEnums code : values()) {
            if (code.getIntegerValue().equals(value)) {
                return code;
            }
        }
        return null;
    }

    /**
     * 根据code返回msg
     */
    public static String getMsgByCode(Integer value) {
        for (DicNumEnums code : values()) {
            if (code.getIntegerValue().equals(value)) {
                return code.getMsg();
            }
        }
        return null;
    }

    public static void main(String[] args) {
        //获取枚举对应的值
        Integer integerValue = DicNumEnums.NUM_ONE.getIntegerValue();
        String msg = DicNumEnums.NUM_ONE.getMsg();
        System.out.println(integerValue + ":" + msg); // 1 : 数字1

        // 通过code获取 对应的enum类
        DicNumEnums msgValue = DicNumEnums.getByCode(1);
        System.out.println(msgValue); // NUM_ONE

        // 根据code返回msg
        String msgByCode = DicNumEnums.getMsgByCode(1);
        System.out.println(msgByCode); // 数字1

    }
}
